package br.com.cast.scc.filtros;

import java.util.Iterator;

import org.apache.wicket.markup.repeater.data.IDataProvider;
import org.apache.wicket.model.CompoundPropertyModel;
import org.apache.wicket.model.IModel;

import br.com.cast.scc.enuns.StatusRegistroAtivo;
import br.com.cast.scc.model.DominioTipoVeiculo;
import br.com.cast.scc.model.Veiculo;
import br.com.cast.scc.service.VeiculoService;

public class FiltroPesquisaVeiculos implements IDataProvider<Veiculo> {
	
	private static final long serialVersionUID = 1L;

	private VeiculoService veiculoService;
	
	private DominioTipoVeiculo tipoVeiculo;
	
	private Long nuEmbarcacao;
	
	private String placa;
	
	private String rntrc;
	
	private StatusRegistroAtivo status;

	public FiltroPesquisaVeiculos(
			VeiculoService veiculoService) {
		this.veiculoService = veiculoService;
	}
	
	public DominioTipoVeiculo getTipoVeiculo() {
		return tipoVeiculo;
	}

	public void setTipoVeiculo(DominioTipoVeiculo tipoVeiculo) {
		this.tipoVeiculo = tipoVeiculo;
	}

	public Long getNuEmbarcacao() {
		return nuEmbarcacao;
	}

	public void setNuEmbarcacao(Long nuEmbarcacao) {
		this.nuEmbarcacao = nuEmbarcacao;
	}

	public String getPlaca() {
		return placa;
	}

	public void setPlaca(String placa) {
		this.placa = placa;
	}

	public String getRntrc() {
		return rntrc;
	}

	public void setRntrc(String rntrc) {
		this.rntrc = rntrc;
	}

	public StatusRegistroAtivo getStatus() {
		return status;
	}

	public void setStatus(StatusRegistroAtivo status) {
		this.status = status;
	}

	@Override
	public void detach() {}

	@Override
	public Iterator<? extends Veiculo> iterator(
			long first, long count) {
		return veiculoService.consultaPaginada(
				first, count, this);
	}

	@Override
	public long size() {
		return veiculoService.total();
	}

	@Override
	public IModel<Veiculo> model(Veiculo veiculo) {
		return new CompoundPropertyModel<Veiculo>(veiculo);
	}
	
}
